*1988, 1992, 2000 and 2004 American National Elections Study*

*This supplemental analysis is conducted as part of revisions* 
*made in response to the invitation to revise and resubmit* 
*our manuscript at the Journal of Politics*

*Specifically, this supplemental analysis responds to Reviewer 1's*
*critique that political knowledge should be measured as*
*the respondent's factual knowledge of political questions, rather*
*than as the interviewer's assessment of the respondent's*
*level of general political information, which represents*
*the current operationalization of the concept*

*This analysis correlates the operationalization employed*
*in the existing analysis in the manuscript with the*
*alternative operationalization suggested by Reviewer 1*

*This supplementary analysis also conducts a confirmatory* 
*factor analysis of the structure of mass public* 
*attitudes in the year 2000 using the alternative*
*operationalization of political knowledge outlined*
*in the this supplementary analysis*

*Mon. July 3 2013*
*Updated: Tues. 2 July 2013*
*Updated: Wed. 3 July 2013*
*Updated Thurs. 4 July 2013*
*Updated Friday 5 July 2013*
*Updated Friday 26 July 2013*
*Updated Mon. 29 July 2013*
*Updated: Sun. 31 August 2014* (Edited for typos)

****************
*1988 ANES*
****************

****************
*Recode political knowledge variable according to the alternative*
*operationalization suggested by Reviewer 1*

*This alternative operationalization of political knowledge measures*
*the variable in terms of the respondent's factual knowledge of political*
*questions*
****************

*Ted Kennedy*

gen Kennedyknowledge88 = V880871
replace Kennedyknowledge88 = . if V880871 == 0
replace Kennedyknowledge88 = 0 if V880871 == 5
replace Kennedyknowledge88 = 0 if V880871 == 8
replace Kennedyknowledge88 = 0 if V880871 == 9
label var Kennedyknowledge88 /// 
"Knowledge of Ted Kennedy's Political Office"
label define Kennedyoffice88 /// 
0 "0 Incorrect" 1 "1 Correct (United States Senator)"
label values Kennedyknowledge88 Kennedyoffice88

*George Schultz*

gen Schultzknowledge88 = V880872
replace Schultzknowledge88 = . if V880872 == 0
replace Schultzknowledge88 = 0 if V880872 == 5
replace Schultzknowledge88 = 0 if V880872 == 8
replace Schultzknowledge88 = 0 if V880872 == 9
label var Schultzknowledge88 ///
"Knowledge of George Schultz's Political Office"
label define Schultzoffice88 /// 
0 "0 Incorrect" 1 "1 Correct (U.S. Secretary of State)"
label values Schultzknowledge88 Schultzoffice88

*William Rehnquist*

gen Rehnquistknowledge88 = V880873
replace Rehnquistknowledge88 = . if V880873 == 0
replace Rehnquistknowledge88 = 0 if V880873 == 5
replace Rehnquistknowledge88 = 0 if V880873 == 8
replace Rehnquistknowledge88 = 0 if V880873 == 9
label var Rehnquistknowledge88 /// 
"Knowledge of William Rehnquist's Political Office"
label define Rehnquistoffice88 /// 
0 "0 Incorrect" 1 "1 Correct (Chief Justice of the U.S. Supreme Court)"
label values Rehnquistknowledge88 Rehnquistoffice88

*Mikhail Gorbachev*

gen Gorbachevknowledge88 = V880874
replace Gorbachevknowledge88 = . if V880874 == 0
replace Gorbachevknowledge88 = 0 if V880874 == 5
replace Gorbachevknowledge88 = 0 if V880874 == 8
replace Gorbachevknowledge88 = 0 if V880874 == 9
label var Gorbachevknowledge88 /// 
"Knowledge of Mikhail Gorbachev's Political Office"
label define Gorbachevoffice88 /// 
0 "0 Incorrect" 1 "1 Correct (General Secretary of the Communist Party of the Soviet Union)"
label values Gorbachevknowledge88 Gorbachevoffice88

*Margaret Thatcher*

gen Thatcherknowledge88 = V880875
replace Thatcherknowledge88 = . if V880875 == 0
replace Thatcherknowledge88 = 0 if V880875 == 5
replace Thatcherknowledge88 = 0 if V880875 == 8
replace Thatcherknowledge88 = 0 if V880875 == 9
label var Thatcherknowledge88 ///
"Knowledge of Margaret Thatcher's Political Office"
label define Thatcheroffice88 /// 
0 "0 Incorrect" 1 "1 Correct (Prime Minister of the United Kingdom)"
label values Thatcherknowledge88 Thatcheroffice88

*Yasser Arafat*

gen Arafatknowledge88 = V880876
replace Arafatknowledge88 = . if V880876 == 0
replace Arafatknowledge88 = 0 if V880876 == 5
replace Arafatknowledge88 = 0 if V880876 == 8
replace Arafatknowledge88 = 0 if V880876 == 9
label var Arafatknowledge88 /// 
"Knowledge of Yasser Arafat's Political Office"
label define Arafatoffice88 ///
0 "0 Incorrect" 1 "1 Correct (Chairman of the Palestinian Liberation Organization)"
label values Arafatknowledge88 Arafatoffice88

*Jim Wright*

gen Wrightknowledge88 = V880877
replace Wrightknowledge88 = . if V880877 == 0
replace Wrightknowledge88 = 0 if V880877 == 5
replace Wrightknowledge88 = 0 if V880877 == 8
replace Wrightknowledge88 = 0 if V880877 == 9
label var Wrightknowledge88 /// 
"Knowledge of Jim Wright's Political Office"
label define Wrightoffice88 /// 
0 "0 Incorrect" 1 "1 Correct (Speaker of the United States House of Representatives)"
label values Wrightknowledge88 Wrightoffice88

*Party control of the House*

gen Partyhouseknowledge88 = V880878
replace Partyhouseknowledge88 = . if V880878 == 0
replace Partyhouseknowledge88 = 0 if V880878 == 1
replace Partyhouseknowledge88 = 0 if V880878 == 8
replace Partyhouseknowledge88 = 0 if V880878 == 9
replace Partyhouseknowledge88 = 1 if V880878 == 5
label var Partyhouseknowledge88 /// 
"Knowledge of Party Control of the House"
label define Partyhousecontrol88 /// 
0 "0 Incorrect" 1 "1 Correct (Democrats)"
label values Partyhouseknowledge88 Partyhousecontrol88

*Party control of the Senate*

gen Partysenateknowledge88 = V880879
replace Partysenateknowledge88 = . if V880879 == 0
replace Partysenateknowledge88 = 0 if V880879 == 1
replace Partysenateknowledge88 = 0 if V880879 == 8
replace Partysenateknowledge88 = 0 if V880879 == 9
replace Partysenateknowledge88 = 1 if V880879 == 5
label var Partysenateknowledge88 /// 
"Knowledge of Party Control of the Senate"
label define Partysenatecontrol88 /// 
0 "0 Incorrect" 1 "1 Correct (Democrats)"
label values Partysenateknowledge88 Partysenatecontrol88

****************
*Create 1988 political knowledge scale according to the*
*operationalization of political knowledge as the respondents'* 
*knowledge of factual political questions*
****************

gen Knowledgem88alt = Kennedyknowledge88 + Schultzknowledge88 + Rehnquistknowledge88 + /// 
Gorbachevknowledge88 + Thatcherknowledge88 + Arafatknowledge88 + /// 
Wrightknowledge88 + Partyhouseknowledge88 + Partysenateknowledge88

summarize Knowledgem88alt

****************
*Create a histogram of the 1988 political knowledge index* 
*according to the operationalization of political knowledge* 
*as the respondents' knowledge of factual political questions*
****************

histogram Knowledgem88alt, aspect(1) fcolor(gs14) lcolor(black) /// 
discrete scheme(s1mono) ///
plotregion(lcolor(black))graphregion(margin(medsmall)) ///
title("1988", size(huge)) ///
xlabel(0 (5) 9,labsize(huge)) ///
xtitle("Political Knowledge", size(huge)) ///
ylabel(0.0 (.05) .1, format(%02.1f) labsize(huge)) ///
ytitle("Density", size(huge))

****************
*Correlate the two measures*
*of political knowledge*
****************

findit corrci

corrci Knowledgem88 Knowledgem88alt

****************
*1992 ANES*
****************

****************
*Recode political knowledge variable according to the alternative*
*operationalization suggested by Reviewer 1*

*This alternative operationalization of political knowledge measures*
*the variable in terms of the respondent's factual knowledge of political*
*questions*
****************

*Dan Quayle*

gen Quayleknowledge92 = V925916
replace Quayleknowledge92 = . if V925916 == 0
replace Quayleknowledge92 = 0 if V925916 == 5
replace Quayleknowledge92 = 0 if V925916 == 8
replace Quayleknowledge92 = 0 if V925916 == 9
label var Quayleknowledge92 /// 
"Knowledge of Dan Quayle's Political Office"
label define Quayleoffice92 ///
0 "0 Incorrect" 1 "1 Correct (Vice President of the United States)"
label values Quayleknowledge92 Quayleoffice92

*William Rehnquist*

gen Rehnquistknowledge92 = V925917
replace Rehnquistknowledge92 = . if V925917 == 0
replace Rehnquistknowledge92 = 0 if V925917 == 5
replace Rehnquistknowledge92 = 0 if V925917 == 8
replace Rehnquistknowledge92 = 0 if V925917 == 9
label var Rehnquistknowledge92 /// 
"Knowledge of William Rehnquist's Political Office"
label define Rehnquistoffice92 /// 
0 "0 Incorrect" 1 "1 Correct (Chief Justice of the United States Supreme Court)"
label values Rehnquistknowledge92 Rehnquistoffice92

*Boris Yeltsin*

gen Yeltsinknowledge92 = V925918
replace Yeltsinknowledge92 = . if V925918 == 0
replace Yeltsinknowledge92 = 0 if V925918 == 5
replace Yeltsinknowledge92 = 0 if V925918 == 8
replace Yeltsinknowledge92 = 0 if V925918 == 9
label var Yeltsinknowledge92 /// 
"Knowledge of Boris Yeltsin's Political Office"
label define Yeltsinoffice92 /// 
0 "0 Incorrect" 1 "1 Correct (President of the Russian Federation)"
label values Yeltsinknowledge92 Yeltsinoffice92

*Tom Foley*

gen Foleyknowledge92 = V925919
replace Foleyknowledge92 = . if V925919 == 0
replace Foleyknowledge92 = 0 if V925919 == 5
replace Foleyknowledge92 = 0 if V925919 == 8
replace Foleyknowledge92 = 0 if V925919 == 9
label var Foleyknowledge92 /// 
"Knowledge of Tom Foley's Political Office"
label define Foleyoffice92 /// 
0 "0 Incorrect" 1 "1 Correct (Speaker of the United States House of Representatives)"
label values Foleyknowledge92 Foleyoffice92

*Judicial Review*

gen Constitutionknowledge92 = V925920
replace Constitutionknowledge92 = . if V925920 == 0
replace Constitutionknowledge92 = 0 if V925920 == 1
replace Constitutionknowledge92 = 0 if V925920 == 2
replace Constitutionknowledge92 = 0 if V925920 == 8
replace Constitutionknowledge92 = 0 if V925920 == 9
replace Constitutionknowledge92 = 1 if V925920 == 3
label var Constitutionknowledge92 /// 
"Knowledge of Judicial Review"
label define Constitutionpower92 ///
0 "0 Incorrect" 1 "1 Correct (Supreme Court)"
label values Constitutionknowledge92 Constitutionpower92

*Appointments to the federal judiciary*

gen Nominationsknowledge92 = V925921
replace Nominationsknowledge92 = . if V925921 == 0
replace Nominationsknowledge92 = 0 if V925921 == 2
replace Nominationsknowledge92 = 0 if V925921 == 3
replace Nominationsknowledge92 = 0 if V925921 == 8
replace Nominationsknowledge92 = 0 if V925921 == 9
label var Nominationsknowledge92 /// 
"Knowledge of Federal Judicial Appointments"
label define Nominationspower92 /// 
0 "0 Incorrect" 1 "1 Correct (President)"
label values Nominationsknowledge92 Nominationspower92

****************
*Create a 1992 political knowledge index according to the*
*operationalization of political knowledge as the respondents'* 
*knowledge of factual political questions*
****************

gen Knowledgem92alt = Quayleknowledge92 + Rehnquistknowledge92 + /// 
Yeltsinknowledge92 + Foleyknowledge92 + ///
Constitutionknowledge92 + Nominationsknowledge92

summarize Knowledgem92alt

****************
*Create a histogram of the 1992 political knowledge index* 
*according to the operationalization of political knowledge* 
*as the respondents' knowledge of factual political questions*
****************

histogram Knowledgem92alt, aspect(1) fcolor(gs14) lcolor(black) /// 
discrete scheme(s1mono) ///
plotregion(lcolor(black))graphregion(margin(medsmall)) ///
title("1992", size(huge)) ///
xlabel(0 (1) 6,labsize(huge)) ///
xtitle("Political Knowledge", size(huge)) ///
ylabel(0.0 (.05) .2, format(%02.1f) labsize(huge)) ///
ytitle("Density", size(huge))

****************
*Correlate the two measures*
*of political knowledge*
****************

corrci Knowledgem92 Knowledgem92alt

****************
*2000 ANES*
****************

****************
*Recode political knowledge variable according to the alternative*
*operationalization suggested by Reviewer 1*

*This alternative operationalization of political knowledge measures*
*the variable in terms of the respondent's factual knowledge of political*
*questions*
****************

*Trent Lott*

gen Lottknowledge00 = V001447
replace Lottknowledge00 = . if V001447 == 0
replace Lottknowledge00 = 0 if V001447 == 5
replace Lottknowledge00 = 0 if V001447 == 8
replace Lottknowledge00 = 0 if V001447 == 9
label var Lottknowledge00 /// 
"Knowledge of Trent Lott's Political Office"
label define Lottoffice00 ///
0 "0 Incorrect" 1 "1 Correct (Majority Leader of the United States Senate)"
label values Lottknowledge00 Lottoffice00

*William Rehnquist*
*Note: Coding of this question by ANES interviewers is suspect*

gen Rehnquistknowledge00 = V001450
replace Rehnquistknowledge00 = . if V001450 == 0
replace Rehnquistknowledge00 = 0 if V001450 == 5
replace Rehnquistknowledge00 = 0 if V001450 == 8
replace Rehnquistknowledge00 = 0 if V001450 == 9
label var Rehnquistknowledge00 /// 
"Knowledge of William Rehnquist's Political Office"
label define Rehnquistoffice00 ///
0 "0 Incorrect" 1 "1 Correct (Chief Justice of the United States Supreme Court)"
label values Rehnquistknowledge00 Rehnquistoffice00

*Tony Blair*
*Note: Coding of this question by ANES interviewers is suspect*

gen Blairknowledge00 = V001453
replace Blairknowledge00 = . if V001453 == 0
replace Blairknowledge00 = 0 if V001453 == 5
replace Blairknowledge00 = 0 if V001453 == 8
replace Blairknowledge00 = 0 if V001453 == 9
label var Blairknowledge00 /// 
"Knowledge of Tony Blair's Political Office"
label define Blairoffice00 /// 
0 "0 Incorrect" 1 "1 Correct (Prime Minister of Great Britain)"
label values Blairknowledge00 Blairoffice00

*Janet Reno*

gen Renoknowledge00 = V001456
replace Renoknowledge00 = . if V001456 == 0
replace Renoknowledge00 = 0 if V001456 == 5
replace Renoknowledge00 = 0 if V001456 == 8
replace Renoknowledge00 = 0 if V001456 == 9
label var Renoknowledge00 /// 
"Knowledge of Trent Reno's Political Office"
label define Renooffice00 ///
0 "0 Incorrect" 1 "1 Correct (United States Attorney General)"
label values Renoknowledge00 Renooffice00

*George W. Bush home state*

gen Bushstate00 = V001458
replace Bushstate00 = . if V001458 == 0
replace Bushstate00 = 0 if V001458 == 1
replace Bushstate00 = 0 if V001458 == 2
replace Bushstate00 = 0 if V001458 == 4
replace Bushstate00 = 0 if V001458 == 7
replace Bushstate00 = 0 if V001458 == 8
replace Bushstate00 = 0 if V001458 == 9
replace Bushstate00 = 1 if V001458 == 3
label var Bushstate00 ///
"Knowledge of George W. Bush's Home State"
label define Bushhomestate00 ///
0 "0 Incorrect" 1 "1 Correct (Texas)"
label values Bushstate00 Bushhomestate00

*George W. Bush religion*
*Note: George W. Bush converted from Episcopalianism to Methodism in 1977*
*I searched for this information because I knew that his father is an Episcopalian*
*and that George W. Bush became a born-again Christian at some point during his life*

gen Bushreligion00 = V001460
replace Bushreligion00 = . if V001460 == 9
replace Bushreligion00 = 0 if V001460 == 1
replace Bushreligion00 = 0 if V001460 == 3
replace Bushreligion00 = 0 if V001460 == 7
replace Bushreligion00 = 0 if V001460 == 8
replace Bushreligion00 = 1 if V001460 == 2
label var Bushreligion00 /// 
"Knowledge of George W. Bush's Religion"
label define Bushreligious00 /// 
0 "0 Incorrect" 1 "1 Correct (Methodist)"
label values Bushreligion00 Bushreligious00

*Al Gore home state*

gen Gorestate00 = V001462
replace Gorestate00 = . if V001462 == 0
replace Gorestate00 = 0 if V001462 == 1
replace Gorestate00 = 0 if V001462 == 3
replace Gorestate00 = 0 if V001462 == 4
replace Gorestate00 = 0 if V001462 == 7
replace Gorestate00 = 0 if V001462 == 8
replace Gorestate00 = 0 if V001462 == 9
replace Gorestate00 = 1 if V001462 == 2
label var Gorestate00 /// 
"Knowledge of Al Gore's Home State"
label define Gorehomestate00 /// 
0 "0 Incorrect" 1 "1 Correct (Tennessee)"
label values Gorestate00 Gorehomestate00

*Al Gore religion*
*Note: Al Gore is a Baptist, and he used to be a Southern Baptist*
*I searched for this information to confirm the correct answer*

gen Gorereligion00 = V001464
replace Gorereligion00 = . if V001464 == 9
replace Gorereligion00 = 0 if V001464 == 2
replace Gorereligion00 = 0 if V001464 == 3
replace Gorereligion00 = 0 if V001464 == 7
replace Gorereligion00 = 0 if V001464 == 8
label var Gorereligion00 /// 
"Knowledge of Al Gore's Religion"
label define Gorereligious00 /// 
0 "0 Incorrect" 1 "1 Correct (Baptist)"
label values Gorereligion00 Gorereligious00

*Dick Cheney home state*

gen Cheneystate00 = V001466
replace Cheneystate00 = . if V001466 == 0
replace Cheneystate00 = 0 if V001466 == 1
replace Cheneystate00 = 0 if V001466 == 2
replace Cheneystate00 = 0 if V001466 == 3
replace Cheneystate00 = 0 if V001466 == 7
replace Cheneystate00 = 0 if V001466 == 8
replace Cheneystate00 = 0 if V001466 == 9
replace Cheneystate00 = 1 if V001466 == 4
label var Cheneystate00 /// 
"Knowledge of Dick Cheney's Home State"
label define Cheneyhomestate00 ///
0 "0 Incorrect" 1 "1 Correct (Wyoming)"
label values Cheneystate00 Cheneyhomestate00

*Dick Cheney religion*
*Note: He is a Methodist*
*I searched for this information to confirm the correct answer*

gen Cheneyreligion00 = V001468
replace Cheneyreligion00 = . if V001468 == 9
replace Cheneyreligion00 = 0 if V001468 == 1
replace Cheneyreligion00 = 0 if V001468 == 3
replace Cheneyreligion00 = 0 if V001468 == 7
replace Cheneyreligion00 = 0 if V001468 == 8
replace Cheneyreligion00 = 1 if V001468 == 2
label var Cheneyreligion00 /// 
"Knowledge of Dick Cheney's Religion"
label define Cheneyreligious00 ///
0 "0 Incorrect" 1 "1 Correct (Methodist)"
label values Cheneyreligion00 Cheneyreligious00

*Joe Lierberman home state*

gen Lierbermanstate00 = V001470
replace Lierbermanstate00 = . if V001470 == 0
replace Lierbermanstate00 = 0 if V001470 == 2
replace Lierbermanstate00 = 0 if V001470 == 3
replace Lierbermanstate00 = 0 if V001470 == 4
replace Lierbermanstate00 = 0 if V001470 == 7
replace Lierbermanstate00 = 0 if V001470 == 8
replace Lierbermanstate00 = 0 if V001470 == 9
label var Lierbermanstate00 /// 
"Knowledge Joe Lierberman's Home State"
label define Lierbermanhomestate00 ///
0 "0 Incorrect" 1 "1 Correct (Connecticut)"
label values Lierbermanstate00 Lierbermanhomestate00

*Joe Lierberman religion*

gen Lierbermanreligion00 = V001472
replace Lierbermanreligion00 = . if V001472 == 9
replace Lierbermanreligion00 = 0 if V001472 == 1
replace Lierbermanreligion00 = 0 if V001472 == 2
replace Lierbermanreligion00 = 0 if V001472 == 7
replace Lierbermanreligion00 = 0 if V001472 == 8
replace Lierbermanreligion00 = 1 if V001472 == 3
label var Lierbermanreligion00 /// 
"Joe Lierberman's Religion"
label define Lierbermanreligious00 ///
0 "0 Incorrect" 1 "1 Correct (Jewish)"
label values Lierbermanreligion00 Lierbermanreligious00

*Party control of the House*

gen Partyhouseknowledge00 = V001356
replace Partyhouseknowledge00 = . if V001356 == 0
replace Partyhouseknowledge00 = 0 if V001356 == 1
replace Partyhouseknowledge00 = 0 if V001356 == 8
replace Partyhouseknowledge00 = 0 if V001356 == 9
replace Partyhouseknowledge00 = 1 if V001356 == 5
label var Partyhouseknowledge00 /// 
"Knowledge of Party Control of the House of Representatives"
label define Partyhousecontrol ///
0 "0 Incorrect" 1 "1 Correct (Republicans)"
label values Partyhouseknowledge Partyhousecontrol 

*Party control of the Senate*

gen Partysenateknowledge00 = V001357
replace Partysenateknowledge00 = . if V001357 == 0
replace Partysenateknowledge00 = 0 if V001357 == 1
replace Partysenateknowledge00 = 0 if V001357 == 8
replace Partysenateknowledge00 = 0 if V001357 == 9
replace Partysenateknowledge00 = 1 if V001357 == 5
label var Partysenateknowledge00 /// 
"Knowledge of Party Control of the Senate"
label define Partysenatecontrol /// 
0 "0 Incorrect" 1 "1 Correct (Republicans)"
label values Partysenateknowledge Partysenatecontrol 

****************
*Create 2000 political knowledge scale according to the*
*operationalization of political knowledge as the respondents'* 
*knowledge of factual political questions*
****************

gen Knowledgem00alt = Lottknowledge00 + Rehnquistknowledge00 + /// 
Blairknowledge00 + Renoknowledge00 + Bushstate00 + Bushreligion00 + ///
Gorestate00 + Gorereligion00 + Cheneystate00 + Cheneyreligion00 +  /// 
Lierbermanstate00 + Lierbermanreligion00 + Partyhouseknowledge00 + ///
Partysenateknowledge00

summarize Knowledgem00alt

****************
*Create a histogram of the 2000 political knowledge index* 
*according to the operationalization of political knowledge* 
*as the respondents' knowledge of factual political questions*
****************

histogram Knowledgem00alt, aspect(1) fcolor(gs14) lcolor(black) /// 
discrete scheme(s1mono) ///
plotregion(lcolor(black))graphregion(margin(medsmall)) ///
title("2000", size(huge)) ///
xlabel(0 (2) 13,labsize(huge)) ///
xtitle("Political Knowledge", size(huge)) ///
ylabel(0.0 (.05) .1, format(%02.1f) labsize(huge)) ///
ytitle("Density", size(huge))

****************
*Correlate the two measures*
*of political knowledge*
****************

corrci Knowledgem00 Knowledgem00alt

****************
*2004 ANES*
****************

****************
*Recode political knowledge variable according to the alternative*
*operationalization suggested by Reviewer 1*

*This alternative operationalization of political knowledge measures*
*the variable in terms of the respondent's factual knowledge of political*
*questions*
****************

*Dennis Hastert*

gen Hastertknowledge04 = V045162
replace Hastertknowledge04 = 0 if V045162 == 5
replace Hastertknowledge04 = 0 if V045162 == 8
replace Hastertknowledge04 = 0 if V045162 == 9
label var Hastertknowledge04 /// 
"Knowledge of Dennis Hastert's Political Office"
label define Hastertknowledge04 ///
0 "0 Incorrect" 1 "1 Correct (Speaker of the United States House of Representatives)"
label values Hastertknowledge04 Hastertoffice04

*Dick Cheney*

gen Cheneyknowledge04 = V045163
replace Cheneyknowledge04 = 0 if V045163 == 5
replace Cheneyknowledge04 = 0 if V045163 == 8
replace Cheneyknowledge04 = 0 if V045163 == 9
label var Cheneyknowledge04 /// 
"Knowledge of Dick Cheney's Political Office"
label define Cheneyoffice04 ///
0 "0 Incorrect" 1 "1 Correct (Vice President of the United States)"
label values Cheneyknowledge04 Cheneyoffice04

*Tony Blair*
*Note: Coding of this question by ANES interviewers is suspect,*
*and Skip Lupia and Jon Krosnick note in their investigation* 
*of the coding scheme for it that this knowledge question "should* 
*be used with caution � particularly when attempting to compare* 
*these responses to those of other surveys, including other ANES surveys"*

gen Blairknowledge04 = V045164
replace Blairknowledge04 = 0 if V045164 == 5
replace Blairknowledge04 = 0 if V045164 == 8
replace Blairknowledge04 = 0 if V045164 == 9
label var Blairknowledge04 /// 
"Knowledge of Tony Blair's Political Office"
label define Blairoffice04 ///
0 "0 Incorrect" 1 "1 Correct (Prime Minister of the United Kingdom)"
label values Blairknowledge04 Blairoffice04

*William Rehnquist*
*Note: Coding of this question by ANES interviewers is suspect,*
*and Skip Lupia and Jon Krosnick note in their investigation* 
*of the coding scheme for it that this knowledge question "should* 
*be used with caution � particularly when attempting to compare* 
*these responses to those of other surveys, including other ANES surveys"*

gen Rehnquistknowledge04 = V045165
replace Rehnquistknowledge04 = 0 if V045165 == 5
replace Rehnquistknowledge04 = 0 if V045165 == 8
replace Rehnquistknowledge04 = 0 if V045165 == 9
label var Rehnquistknowledge04 /// 
"Knowledge of William Rehnquist's Political Office"
label define Rehnquistoffice04 0 "0 Incorrect" 1 "1 Correct"
label values Rehnquistknowledge04 Rehnquistoffice04

****************
*Create 2004 political knowledge scale according to the*
*operationalization of political knowledge as the respondents'* 
*knowledge of factual political questions*
****************

gen Knowledgem04alt = Hastertknowledge04 + Cheneyknowledge04 + /// 
Blairknowledge04 + Rehnquistknowledge04

summarize Knowledgem04alt

histogram Knowledgem04alt, aspect(1) fcolor(gs14) lcolor(black) /// 
discrete scheme(s1mono) ///
plotregion(lcolor(black))graphregion(margin(medsmall)) ///
title("2004", size(huge)) ///
xlabel(0 (2) 4,labsize(huge)) ///
xtitle("Political Knowledge", size(huge)) ///
ylabel(0.0 (.1) .3, format(%02.1f) labsize(huge)) ///
ytitle("Density", size(huge))

****************
*Correlate the two measures*
*of political knowledge*
****************

corrci Knowledgem04 Knowledgem04alt

****************
*2000 ANES Data*
*Now, we will produce results for our "exemplar" year, the year 2000,*
*using the alternative operationalization of political sophistication*
****************

****************
*Recode symbolic predisposition variables*
****************

*Party identification*
*Note: Here, we recode the party identification variable by dividing "strong* 
*partisans" from "not strong partisans."  This step is done to demonstrate* 
*that the high level of constraint exhibited by sophisticated* 
*citizens � particularly "hyper" sophisticates � is not merely* 
*an artifact of partisanship*

gen Partyidm00 = V000523
replace Partyidm00 = . if V000523 == 9
replace Partyidm00 = 1 if V000523 == 2
replace Partyidm00 = 1 if V000523 == 3
replace Partyidm00 = 1 if V000523 == 4
replace Partyidm00 = 1 if V000523 == 5
replace Partyidm00 = 1 if V000523 == 7
replace Partyidm00 = 1 if V000523 == 8
replace Partyidm00 = 2 if V000523 == 0 
replace Partyidm00 = 2 if V000523 == 6
label var Partyidm00 "Partisan Strength"
label define Partisanstrengthm00 /// 
1 "1 Not strong identifiers" 2 "2 Strong party identifiers"
label values Partyidm00 Partisanstrengthm00

*Ideological self-identification*

gen Ideologym00 = V000446
replace Ideologym00 = . if V000446 == 0
replace Ideologym00 = . if V000446 == 8
replace Ideologym00 = . if V000446 == 9
label var Ideologym00 "Ideological Self-identification"
label define Ideologicalidentificationm00 /// 
1 "1 Extremely Liberal" 7 "7 Extremely conservative"
label values Ideologym00 Ideologicalidentificationm00

****************
*Recode issue attitude variables*

*Note: The eleven issues included in the analysis for 2000 are the following:* 
*services spending, welfare spending, government versus private health* 
*insurance, child care spending, public school spending, assistance to blacks,*
*spending on the environment, defense spending, abortion, homosexual feeling* 
*thermometer and government efforts to protect homosexuals* 
*from job discrimination*

*Note: All issue attitude variables except the government versus private* 
*health insurance, assistance to blacks, defense spending and homosexual* 
*job discrimination variables are reverse coded so higher values reflect* 
*more conservative attitudes*
*****************

*Services*
*Note: This variable is reverse coded so higher values reflect more* 
*conservative attitudes*

gen Servicesm00 = V000550
replace Servicesm00 = . if V000550 == 0
replace Servicesm00 = . if V000550 == 8
replace Servicesm00 = . if V000550 == 9
replace Servicesm00 = 1 if V000550 == 5
replace Servicesm00 = 2 if V000550 == 4
replace Servicesm00 = 4 if V000550 == 2
replace Servicesm00 = 5 if V000550 == 1
label var Servicesm00 "Government Provision of Services versus Lower Spending"
label define Servicesgovm00 /// 
1 "1 Increase spending and services a great deal" /// 
2 "2 Increase spending and services only some" ///
3 "3 Stay same as now" 4 "4 Reduce spending and services only some" /// 
5 "5 Reduce spending and services a great deal"
label value Servicesm00 Servicesgovm00

*Welfare spending*
*Note: This variable is reverse coded so higher values reflect more* 
*conservative attitudes*

gen Welfarem00 = V000676
replace Welfarem00 = . if V000676 == 0
replace Welfarem00 = . if V000676 == 8 
replace Welfarem00 = . if V000676 == 9 
replace Welfarem00 = 2 if V000676 == 5
replace Welfarem00 = 4 if V000676 == 7
label var Welfarem00 "Attitudes Toward Welfare Spending"
label define Welfarespendingm00 /// 
1 "1 Increased" 2 "2 Kept about the same" 3 "3 Reduced" 4 "4 Cut out entirely"
label values Welfarem00 Welfarespendingm00

*Government versus private health insurance*

gen Insurancem00 = V000614
replace Insurancem00 = . if V000614 == 0
replace Insurancem00 = . if V000614 == 8
replace Insurancem00 = . if V000614 == 9
label var Insurancem00 /// 
"Attitudes Toward Government versus Private Insurance Plans"
label define Insuranceplanm00 /// 
1 "1 Strongly�government insurance plan" /// 
2 "2 Not strongly�government insurance plan" ///
3 "3 Stay the same as it is now" 4 "4 Not strongly�individual insurance" /// 
5 "5 Strongly�individual insurance"
label values Insurancem00 Insuranceplanm00

*Child care spending*
*Note: This variable is reverse coded so higher values reflect more* 
*conservative attitudes*

gen Childcarem00 = V000685
replace Childcarem00 = . if V000685 == 0
replace Childcarem00 = . if V000685 == 8
replace Childcarem00 = . if V000685 == 9
replace Childcarem00 = 2 if V000685 == 5
replace Childcarem00 = 4 if V000685 == 7
label var Childcarem00 "Attitudes Toward Spending on Child Care"
label define Childcarespendingm00 /// 
1 "1 Increased" 2 "2 Kept about the same" 3 "3 Reduced" 4 "4 Cut out entirely"
label values Childcarem00 Childcarespendingm00

*Public school spending*
*Note: This variable is reverse coded so higher values reflect more* 
*conservative attitudes*

gen Schoolsm00 = V000683
replace Schoolsm00 = . if V000683 == 0
replace Schoolsm00 = . if V000683 == 8
replace Schoolsm00 = . if V000683 == 9
replace Schoolsm00 = 2 if V000683 == 5
replace Schoolsm00 = 4 if V000683 == 7
label var Schoolsm00 "Attitudes Toward Public School Spending"
label define Schoolspendingm00 /// 
1 "1 Increased" 2 "2 Kept about the same" 3 "3 Reduced" 4 "4 Cut out entirely"
label values Schoolsm00 Schoolspendingm00

*Government assistance to blacks*
*Note: This variable is reverse coded so higher values reflect more* 
*conservative attitudes*

gen Assistblacksm00 = V000645
replace Assistblacksm00 = . if V000645 == 0
replace Assistblacksm00 = . if V000645 == 8
replace Assistblacksm00 = . if V000645 == 9
label var Assistblacksm00 "Attitudes Toward Government Assistance to Blacks"
label define Assistanceblacksm00 /// 
1 "1 Government help blacks to great extent" /// 
2 "2 Government help blacks to some extent" ///
3 "3 Other/Neither/Depends" 4 "4 Should help themselves to some extent" /// 
5 "5 Should help themselves to great extent"
label values Assistblacksm00 Assistanceblacksm00

*Spending on the environment*
*Note: This variable is reverse coded so higher values reflect more* 
*conservative attitudes*

gen Environm00 = V000682
replace Environm00 = . if V000682 == 8
replace Environm00 = . if V000682 == 9
replace Environm00 = 2 if V000682 == 5
replace Environm00 = 4 if V000682 == 7
label var Environm00 "Attitudes on Environmental Spending*
label define Environmentm00 /// 
1 "1 Increased" 2 "2 Kept about the Same" 3 "3 Decreased" 4 "4 Cut out entirely"
label values Environm00 Environmentm00

*Defense spending*
*Note: This variable is reverse coded so higher values reflect more* 
*conservative attitudes*

gen Defensem00 = V000587
replace Defensem00 = . if V000587 == 0
replace Defensem00 = . if V000587 == 8
replace Defensem00 = . if V000587 == 9
label var Defensem00 "Attitudes on Defense Spending"
label define Defensespendingm00 /// 
1 "1 Decrease defense spending a lot" 2 "2 Decrease defense spending a little" /// 
3 "3 About the right amount" 4 "4 Increase defense spending a little" /// 
5 "5 Increase defense spending a lot"
label values Defensem00 Defensespendingm00

*Abortion*
*Note: This variable is reverse coded so higher values reflect more* 
*conservative attitudes*

gen Abortionm00 = V000694
replace Abortionm00 = . if V000694 == 0
replace Abortionm00 = . if V000694 == 7
replace Abortionm00 = . if V000694 == 8
replace Abortionm00 = . if V000694 == 9
replace Abortionm00 = 1 if V000694 == 4
replace Abortionm00 = 2 if V000694 == 3
replace Abortionm00 = 3 if V000694 == 2
replace Abortionm00 = 4 if V000694 == 1
label var Abortionm00 "Attitudes on Abortion"
label define Abortionattitudesm00 /// 
1 "1 By law, a woman should always be able to obtain an abortion as a matter of personal choice" /// 
2 "2 The law should permit abortion for reasons other than rape, incest, or danger to the woman's life, but only after the need for the abortion has been clearly established" ///
3 "3 The law should permit abortion only in case of rape, incest or when the woman's life is in danger" /// 
4 "4 By law, abortion should never be permitted"
label values Abortionm00 Abortionattitudesm00

*Feeling thermometer of homosexuals*
*Note: This variable is reverse coded so higher values reflect more* 
*conservative attitudes*
*Although recoding feeling thermometer variables is rare, the step is taken* 
*here in order to ensure that all variables in the analysis are coded in the* 
*same direction, thus avoiding potentially confusing negative factor loadings*
 
gen Homosexualsthermm00 = V001321
replace Homosexualsthermm00 = . if V001321 == 996
replace Homosexualsthermm00 = . if V001321 == 997
replace Homosexualsthermm00 = . if V001321 == 998
replace Homosexualsthermm00 = . if V001321 == 999
label var Homosexualsthermm00 "Feeling Thermometer of Homosexuals"
label define Homosexualsthermometermm00 /// 
0 "0 Cold" 100 "100 Warm"
label var Homosexualsthermm00 Homosexualsthermometerm00

gen Rhomosexualsthermm00 = 100 - Homosexualsthermm00
label var Rhomosexualsthermm00 "Feeling Thermometer of Homosexuals"
label define Rhomosexualsthermometerm00 /// 
0 "0 Warm" 100 "100 Cold"
label values Rhomosexualsthermm00 Rhomosexualsthermometerm00

*Government efforts to protect homosexuals from job discrimination*

gen Jobdiscriminationm00 = V001481
replace Jobdiscriminationm00 = . if V001481 == 0
replace Jobdiscriminationm00 = . if V001481 == 8
replace Jobdiscriminationm00 = . if V001481 == 9
label var Jobdiscriminationm00 /// 
"Attitudes Toward Government Efforts to Protect Homosexuals from Job Discrimination"
label define Jobdiscriminationgaysm00 /// 
1 "1 Favor strongly" 2 "2 Favor not strongly" 3 "3 Disapprove not strongly" /// 
4 "4 Disapprove strongly"

****************
*Recode political sophistication variables*

*Note: Political sophistication is conceptualized in this analysis as a*
*combination of political knowledge, interest and involvement*

*Note: These political interest and involvement variables are reverse coded* 
*so that higher values reflect greater political sophistication*
****************


*Recode political knowledge variable according to the alternative*
*operationalization suggested by Reviewer 1*

*This alternative operationalization of political knowledge measures*
*the variable in terms of the respondent's factual knowledge of political*
*questions*

*Trent Lott*

gen Lottknowledge00 = V001447
replace Lottknowledge00 = . if V001447 == 0
replace Lottknowledge00 = 0 if V001447 == 5
replace Lottknowledge00 = 0 if V001447 == 8
replace Lottknowledge00 = 0 if V001447 == 9
label var Lottknowledge00 /// 
"Knowledge of Trent Lott's Political Office"
label define Lottoffice00 ///
0 "0 Incorrect" 1 "1 Correct (Majority Leader of the United States Senate)"
label values Lottknowledge00 Lottoffice00

*William Rehnquist*
*Note: Coding of this question by ANES interviewers is suspect*

gen Rehnquistknowledge00 = V001450
replace Rehnquistknowledge00 = . if V001450 == 0
replace Rehnquistknowledge00 = 0 if V001450 == 5
replace Rehnquistknowledge00 = 0 if V001450 == 8
replace Rehnquistknowledge00 = 0 if V001450 == 9
label var Rehnquistknowledge00 /// 
"Knowledge of William Rehnquist's Political Office"
label define Rehnquistoffice00 ///
0 "0 Incorrect" 1 "1 Correct (Chief Justice of the United States Supreme Court)"
label values Rehnquistknowledge00 Rehnquistoffice00

*Tony Blair*
*Note: Coding of this question by ANES interviewers is suspect*

gen Blairknowledge00 = V001453
replace Blairknowledge00 = . if V001453 == 0
replace Blairknowledge00 = 0 if V001453 == 5
replace Blairknowledge00 = 0 if V001453 == 8
replace Blairknowledge00 = 0 if V001453 == 9
label var Blairknowledge00 /// 
"Knowledge of Tony Blair's Political Office"
label define Blairoffice00 /// 
0 "0 Incorrect" 1 "1 Correct (Prime Minister of Great Britain)"
label values Blairknowledge00 Blairoffice00

*Janet Reno*

gen Renoknowledge00 = V001456
replace Renoknowledge00 = . if V001456 == 0
replace Renoknowledge00 = 0 if V001456 == 5
replace Renoknowledge00 = 0 if V001456 == 8
replace Renoknowledge00 = 0 if V001456 == 9
label var Renoknowledge00 /// 
"Knowledge of Trent Reno's Political Office"
label define Renooffice00 ///
0 "0 Incorrect" 1 "1 Correct (United States Attorney General)"
label values Renoknowledge00 Renooffice00

*George W. Bush home state*

gen Bushstate00 = V001458
replace Bushstate00 = . if V001458 == 0
replace Bushstate00 = 0 if V001458 == 1
replace Bushstate00 = 0 if V001458 == 2
replace Bushstate00 = 0 if V001458 == 4
replace Bushstate00 = 0 if V001458 == 7
replace Bushstate00 = 0 if V001458 == 8
replace Bushstate00 = 0 if V001458 == 9
replace Bushstate00 = 1 if V001458 == 3
label var Bushstate00 ///
"Knowledge of George W. Bush's Home State"
label define Bushhomestate00 ///
0 "0 Incorrect" 1 "1 Correct (Texas)"
label values Bushstate00 Bushhomestate00

*George W. Bush religion*
*Note: George W. Bush converted from Episcopalianism to Methodism in 1977*
*I searched for this information because I knew that his father is an Episcopalian*
*and that George W. Bush became a born-again Christian at some point during his life*

gen Bushreligion00 = V001460
replace Bushreligion00 = . if V001460 == 9
replace Bushreligion00 = 0 if V001460 == 1
replace Bushreligion00 = 0 if V001460 == 3
replace Bushreligion00 = 0 if V001460 == 7
replace Bushreligion00 = 0 if V001460 == 8
replace Bushreligion00 = 1 if V001460 == 2
label var Bushreligion00 /// 
"Knowledge of George W. Bush's Religion"
label define Bushreligious00 /// 
0 "0 Incorrect" 1 "1 Correct (Methodist)"
label values Bushreligion00 Bushreligious00

*Al Gore home state*

gen Gorestate00 = V001462
replace Gorestate00 = . if V001462 == 0
replace Gorestate00 = 0 if V001462 == 1
replace Gorestate00 = 0 if V001462 == 3
replace Gorestate00 = 0 if V001462 == 4
replace Gorestate00 = 0 if V001462 == 7
replace Gorestate00 = 0 if V001462 == 8
replace Gorestate00 = 0 if V001462 == 9
replace Gorestate00 = 1 if V001462 == 2
label var Gorestate00 /// 
"Knowledge of Al Gore's Home State"
label define Gorehomestate00 /// 
0 "0 Incorrect" 1 "1 Correct (Tennessee)"
label values Gorestate00 Gorehomestate00

*Al Gore religion*
*Note: Al Gore is a Baptist, and he used to be a Southern Baptist*
*I searched for this information to confirm the correct answer*

gen Gorereligion00 = V001464
replace Gorereligion00 = . if V001464 == 9
replace Gorereligion00 = 0 if V001464 == 2
replace Gorereligion00 = 0 if V001464 == 3
replace Gorereligion00 = 0 if V001464 == 7
replace Gorereligion00 = 0 if V001464 == 8
label var Gorereligion00 /// 
"Knowledge of Al Gore's Religion"
label define Gorereligious00 /// 
0 "0 Incorrect" 1 "1 Correct (Baptist)"
label values Gorereligion00 Gorereligious00

*Dick Cheney home state*

gen Cheneystate00 = V001466
replace Cheneystate00 = . if V001466 == 0
replace Cheneystate00 = 0 if V001466 == 1
replace Cheneystate00 = 0 if V001466 == 2
replace Cheneystate00 = 0 if V001466 == 3
replace Cheneystate00 = 0 if V001466 == 7
replace Cheneystate00 = 0 if V001466 == 8
replace Cheneystate00 = 0 if V001466 == 9
replace Cheneystate00 = 1 if V001466 == 4
label var Cheneystate00 /// 
"Knowledge of Dick Cheney's Home State"
label define Cheneyhomestate00 ///
0 "0 Incorrect" 1 "1 Correct (Wyoming)"
label values Cheneystate00 Cheneyhomestate00

*Dick Cheney religion*
*Note: He is a Methodist*
*I searched for this information to confirm the correct answer*

gen Cheneyreligion00 = V001468
replace Cheneyreligion00 = . if V001468 == 9
replace Cheneyreligion00 = 0 if V001468 == 1
replace Cheneyreligion00 = 0 if V001468 == 3
replace Cheneyreligion00 = 0 if V001468 == 7
replace Cheneyreligion00 = 0 if V001468 == 8
replace Cheneyreligion00 = 1 if V001468 == 2
label var Cheneyreligion00 /// 
"Knowledge of Dick Cheney's Religion"
label define Cheneyreligious00 ///
0 "0 Incorrect" 1 "1 Correct (Methodist)"
label values Cheneyreligion00 Cheneyreligious00

*Joe Lierberman home state*

gen Lierbermanstate00 = V001470
replace Lierbermanstate00 = . if V001470 == 0
replace Lierbermanstate00 = 0 if V001470 == 2
replace Lierbermanstate00 = 0 if V001470 == 3
replace Lierbermanstate00 = 0 if V001470 == 4
replace Lierbermanstate00 = 0 if V001470 == 7
replace Lierbermanstate00 = 0 if V001470 == 8
replace Lierbermanstate00 = 0 if V001470 == 9
label var Lierbermanstate00 /// 
"Knowledge Joe Lierberman's Home State"
label define Lierbermanhomestate00 ///
0 "0 Incorrect" 1 "1 Correct (Connecticut)"
label values Lierbermanstate00 Lierbermanhomestate00

*Joe Lierberman religion*

gen Lierbermanreligion00 = V001472
replace Lierbermanreligion00 = . if V001472 == 9
replace Lierbermanreligion00 = 0 if V001472 == 1
replace Lierbermanreligion00 = 0 if V001472 == 2
replace Lierbermanreligion00 = 0 if V001472 == 7
replace Lierbermanreligion00 = 0 if V001472 == 8
replace Lierbermanreligion00 = 1 if V001472 == 3
label var Lierbermanreligion00 /// 
"Joe Lierberman's Religion"
label define Lierbermanreligious00 ///
0 "0 Incorrect" 1 "1 Correct (Jewish)"
label values Lierbermanreligion00 Lierbermanreligious00

*Party control of the House*

gen Partyhouseknowledge00 = V001356
replace Partyhouseknowledge00 = . if V001356 == 0
replace Partyhouseknowledge00 = 0 if V001356 == 1
replace Partyhouseknowledge00 = 0 if V001356 == 8
replace Partyhouseknowledge00 = 0 if V001356 == 9
replace Partyhouseknowledge00 = 1 if V001356 == 5
label var Partyhouseknowledge00 /// 
"Knowledge of Party Control of the House of Representatives"
label define Partyhousecontrol ///
0 "0 Incorrect" 1 "1 Correct (Republicans)"
label values Partyhouseknowledge Partyhousecontrol 

*Party control of the Senate*

gen Partysenateknowledge00 = V001357
replace Partysenateknowledge00 = . if V001357 == 0
replace Partysenateknowledge00 = 0 if V001357 == 1
replace Partysenateknowledge00 = 0 if V001357 == 8
replace Partysenateknowledge00 = 0 if V001357 == 9
replace Partysenateknowledge00 = 1 if V001357 == 5
label var Partysenateknowledge00 /// 
"Knowledge of Party Control of the Senate"
label define Partysenatecontrol /// 
0 "0 Incorrect" 1 "1 Correct (Republicans)"
label values Partysenateknowledge Partysenatecontrol 

****************
*Create 2000 political knowledge scale according to the*
*operationalization of political knowledge as the respondents'* 
*knowledge of factual political questions*
****************

gen Knowledgem00alt = Lottknowledge00 + Rehnquistknowledge00 + /// 
Blairknowledge00 + Renoknowledge00 + Bushstate00 + Bushreligion00 + ///
Gorestate00 + Gorereligion00 + Cheneystate00 + Cheneyreligion00 +  /// 
Lierbermanstate00 + Lierbermanreligion00 + Partyhouseknowledge00 + ///
Partysenateknowledge00

summarize Knowledgem00alt

****************
*Divide the political knowledge variable by the number of non-zero* 
*categories it contains (13) so that the variable ranges from zero to one*
****************

gen Knowledgem00alt2 = Knowledgem00alt/13

****************
*Recode interest in the political campaigns variable*
****************

*Interest in the campaigns*
*Note: This variable is reverse coded so that higher values reflect greater* 
*political interest*

gen Interestm00 = V001201
replace Interestm00 = . if V001201 == 0
replace Interestm00 = . if V001201 == 8
replace Interestm00 = . if V001201 == 9
replace Interestm00 = 0 if V001201 == 5
replace Interestm00 = 1 if V001201 == 3
replace Interestm00 = 2 if V001201 == 1
label var Interestm00 "Interest in the the Campaigns"
label define Interestcampaignm00 /// 
0 "0 Not much interested" 1 "1 Somewhat interested" 2 "2 Very much interested"
label values Interestm00 Interestcampaignm00 

****************
*Divide the interest in the campaigns variable by the number of non-zero* 
*categories it contains (2) so that the variable ranges from zero to one*
****************

gen Interest2m00 = Interestm00/2

****************
*Recode political involvement variables*
*Note: These variables are recoded so that higher values reflect greater* 
*political involvement*
****************

*Attendance at political events*
*Note: This value is recoded so that higher values reflect greater* 
*political involvement*

gen Attendm00 = V001227
replace Attendm00 = . if V001227 == 0
replace Attendm00 = 0 if V001227 == 5
label var Attendm00 "Attend a Political Event"
label define Attendancem00 0 "No" 1 "Yes"
label values Attendm00 Attendancem00

*Work for a political candidate*
*Note: This value is recoded so that higher values reflect greater* 
*political involvement*

gen Workm00 = V001228
replace Workm00 = . if V001228 == 0
replace Workm00 = 0 if V001228 == 5
label var Workm00 "Work for a Political Candidate"
label define Workedm00 0 "No" 1 "Yes"
label values Workm00 Workedm00

*Political expression in the form of a campaign button or sticker*
*Note: This value is recoded so that higher values reflect greater* 
*political involvement*

gen Displaym00 = V001226
replace Displaym00 = . if V001226 == 0
replace Displaym00 = . if V001226 == 8
replace Displaym00 = 0 if V001226 == 5
label var Displaym00 "Display a Campaign Button or Sticker"
label define Displaypoliticsm00 0 "No" 1 "Yes"
label values Displaym00 Displaypoliticsm00

*Donation to a political candidate*
*Note: This value is recoded so that higher values reflect greater* 
*political involvement*

gen Donatecm00 = V001229
replace Donatecm00 = . if V001229 == 0
replace Donatecm00 = . if V001229 == 8
replace Donatecm00 = 0 if V001229 == 5
label var Donatecm00 "Donate money to a political candidate"
label define Donatecandidatem00 0 "No" 1 "Yes"
label values Donatecm00 Donatemoneycm00

*Donation to a political party*
*Note: This value is recoded so that higher values reflect greater* 
*political involvement*

gen Donatepm00 = V001231
replace Donatepm00 = . if V001231 == 0
replace Donatepm00 = 0 if V001231 == 5
label var Donatepm00 "Donate money to a political party"
label define Donatepartym00 0 "No" 1 "Yes"
label values Donatepm00 Donatepartym00

****************
*Create a five-point political involvement index that will be used to display* 
*summary statistics of political involvement*
****************

gen Involvementindexm00 = Attendm00 + Workm00 + Displaym00 + Donatecm00 /// 
+ Donatepm00

summarize Involvementindexm00

****************
*Create an eighteen-point political sophistication index that combines measures* 
*of political knowledge, interest and involvement*
*Note: This index will be used to display summary statistics of the* 
*sophistication measure*
****************

gen Sophisticationindexm00 = Knowledgem00alt + Interestm00 + Involvementindexm00

summarize Sophisticationindexm00

****************
*Plot a histogram of the sophistication index*
****************

histogram Sophisticationindexm00, aspect(1) fcolor(gs14) lcolor(black) /// 
discrete scheme(s1mono) ///
plotregion(lcolor(black))graphregion(margin(medsmall)) ///
title("2000", size(huge)) ///
xlabel(0 (6) 18,labsize(huge)) ///
xtitle("Sophistication", size(huge)) ///
ylabel(0.0 0.1, format(%02.1f) labsize(huge))  ///
ytitle("Density", size(huge))

**********
*Graph a kernel density plot of the sophistication index*
**********

kdensity Sophisticationindexm00, aspect(1) scheme(s1mono) 

****************
*Create a political sophistication scale ranging from zero to one that* 
*combines measures of political knowledge, interest and involvement*
*Note: This scale will become the basis of analysis for this paper*
****************

alpha Knowledgem00alt2 Interest2m00 Attendm00 Workm00 Displaym00 Donatecm00 /// 
Donatepm00, detail item generate(Sophisticationscalem00) casewise 

*Note: The alpha reliability coefficient for this scale is .634*

summarize Sophisticationscalem00

****************
*Create a new variable by stratifying the sophistication scale into thirds,* 
*corresponding to the "least," "moderately" and "most" politically* 
*sophisticated respondents in the sample*
****************

display 1551/3

table Sophisticationscalem00

gen Sophisticationm00 = .
replace Sophisticationm00 = 1 if Sophisticationscalem00 < .145 
replace Sophisticationm00 = 2 if Sophisticationscalem00 > .145 & /// 
Sophisticationscalem00 < .220
replace Sophisticationm00 = 3 if Sophisticationscalem00 > .218 & ///
Sophisticationscalem00 < .

summarize Sophisticationm00

table Sophisticationm00

****************
*Confirmatory factor analysis of the 2000 mass issue attitudes*

*Note: Attitudes toward defense spending and the school prayer are used as*
*"indicator variables" for factors 1 and 2* 
*(social welfare and cultural), respectively*

*Note: This step is done to assess the factor correlation between factors one*
*and two for the full ANES sample*
****************

sem (L1 ->Servicesm00) (L1 -> Welfarem00) /// 
(L1 -> Insurancem00) (L1 -> Childcarem00) (L1 -> Schoolsm00) ///
(L1 -> Assistblacksm00) (L1 -> Environm00) (L1 -> Defensem00) /// 
(L2 -> Abortionm00) (L2 -> Rhomosexualsthermm00) /// 
(L2 -> Jobdiscriminationm00), covstruct(_lexogenous, diagonal) /// 
standard cov(L1*L2) latent(L1 L2) nocapslatent

estat gof, stats (all)

****************
*Confirmatory multiple groups factor analysis of the 2000 mass issue attitudes*

*Note: Attitudes toward defense spending and the school prayer are used as*
*"indicator variables" for factors 1 and 2* 
*(social welfare and cultural), respectively*

*Note: This step is done to obtain the correlation between ideological*
*self-identifications and factor one for the entire mass public sample*
*in 2000*

*Note: This step also is done to assess equality of means and variances* 
*across groups*
****************

sem (L1 ->Servicesm00) (L1 -> Welfarem00) /// 
(L1 -> Insurancem00) (L1 -> Childcarem00) (L1 -> Schoolsm00) ///
(L1 -> Assistblacksm00) (L1 -> Environm00) (L1 -> Defensem00) /// 
(L2 -> Abortionm00) (L2 -> Rhomosexualsthermm00) /// 
(L2 -> Jobdiscriminationm00), covstruct(_lexogenous, diagonal) /// 
standard cov(L1*L2) latent(L1 L2) nocapslatent group (Sophisticationm00)  

estat ginvariant

estat gof, stats (all)

predict Factor1m00, latent(L1)

corrci Ideologym00 Factor1m00

*Here, we see the defense spending item does not* 
*exhibit mean invariance, and the welfare, child care and public schools* 
*spending items do not exhibit residual invariance*

****************
*Stratify the mass public according to sophistication, which is a scale* 
*combining political knowledge, interest and involvement*

*Note: The stratification procedure divides the mass public into three groups* 
*according to their level of political sophistication*

*Note: The ideological self-identifications variable is used in this procedure*
*because ideological self-identifications of individuals who fall into*
*each sophistication group later will be correlated with the first retained* 
*factor in the analysis*
****************

gen Ideologym002 = Ideologym00 if Sophisticationm00 == 1

gen Ideologym003 = Ideologym00 if Sophisticationm00 == 2

gen Ideologym004 = Ideologym00 if Sophisticationm00 == 3

****************
*Confirmatory factor analysis of the 2000 mass issue attitudes for the* 
*stratified sample*
*This step investigates more fully our hypothesis that a lack* 
*of sophistication drives the apparently multidimensional structure* 
*of mass political attitudes*

*Note: For each segment of the stratified sample, model fit is assessed* 
*and the correlation between the ideological self-identifications of citizens* 
*who fall in the group being examined and the first retained factor* 
*(hypothesized to be ideology) is estimated*

*Note: The procedure reports a ninety-five percent confidence interval* 
*for the estimated correlation*

*Note: The reported estimates thus reflect differences in the correlation*
*between ideological self-identifications and the first retained factor*
*across sophistication groups*

*Note: Ultimately, the key difference between this analysis and the prior*
*exploratory factor analysis is that the first retained factor here, although*
*representing ideology in each case, is estimated separately for each segment* 
*of the stratified sample*
****************

****************
*Least politically sophisticated third of the stratified sample*
****************

sem (L1 ->Servicesm00) (L1 -> Welfarem00) (L1 -> Insurancem00) /// 
(L1 -> Childcarem00) (L1 -> Schoolsm00) (L1 -> Assistblacksm00) /// 
(L1 -> Environm00) (L1 -> Defensem00) (L2 -> Abortionm00) /// 
(L2 -> Rhomosexualsthermm00) (L2 -> Jobdiscriminationm00), ///
covstruct(_lexogenous, diagonal) standard cov(L1*L2) latent(L1 L2) /// 
nocapslatent, if Sophisticationm00 == 1

estat gof, stats(all)

predict Factor1m00low, latent(L1)

corrci Ideologym002 Factor1m00low

****************
*Moderately politically sophisticated third of the stratified sample*
****************

sem (L1 ->Servicesm00) (L1 -> Welfarem00) (L1 -> Insurancem00) /// 
(L1 -> Childcarem00) (L1 -> Schoolsm00) (L1 -> Assistblacksm00) /// 
(L1 -> Environm00) (L1 -> Defensem00) (L2 -> Abortionm00) ///
(L2 -> Rhomosexualsthermm00) (L2 -> Jobdiscriminationm00), ///
covstruct(_lexogenous, diagonal) standard cov(L1*L2) latent(L1 L2) /// 
nocapslatent, if Sophisticationm00 == 2

estat gof, stats(all)

predict Factor1m00middle, latent(L1)

corrci Ideologym003 Factor1m00middle

****************
*Most politically sophisticated third of the stratified sample*
****************

sem (L1 ->Servicesm00) (L1 -> Welfarem00) /// 
(L1 -> Insurancem00) (L1 -> Childcarem00) (L1 -> Schoolsm00) ///
(L1 -> Assistblacksm00) (L1 -> Environm00) (L1 -> Defensem00) ///
(L2 -> Abortionm00) (L2 -> Rhomosexualsthermm00) (L2 -> Jobdiscriminationm00), /// 
covstruct(_lexogenous, unstructured) /// 
standard cov(L1*L2) latent(L1 L2) nocapslatent, if Sophisticationm00 == 3

estat gof, stats(all)

predict Factor1m00high, latent(L1)

corrci Ideologym004 Factor1m00high

*Note: The preceding three-step analysis produces identical results to a* 
*confirmatory multiple groups factor analysis in a single step*
*I chose to specify the models in this way in the interest*
*of conceptual clarity*

